Treasure Island 2

T_1 (?)

T_2 (?)

T_3 (?)

T_4 (?)

T_5 (?)

Pirates chose a position to bury their treasure by 
standing at a rock and reflecting in 5 trees twice 
over.  Unfortunately, many years later when their 
treaure map is found in a bottle, and after an intrepid 
journey to the island, it is found that the trees have 
all died away.  Only the rock remains...
How can we find the treasure? 

Parchment instructions

Possible Tree Positions

ROCK = (-14.906731257552915, 12.607945190298286)
T_1 = (-10.125210934748605, 16.074101285886197)
T_2 = (-3.06413350166649, 13.619273584541238)
T_3 = (-4.195009184308548, 10.281811204061015)
T_4 = (-7.504889231065789, 9.812911530770405)
R_1 = Mirror(ROCK, T_1)
T_5 = (-13.021355975661193, 9.371594191202773)
R_2 = Mirror(R_1, T_2)
R_3 = Mirror(R_2, T_3)
R_4 = Mirror(R_3, T_4)
R_5 = Mirror(R_4, T_5)
R_6 = Mirror(R_5, T_1)
R_7 = Mirror(R_6, T_2)
R_8 = Mirror(R_7, T_3)
R_9 = Mirror(R_8, T_4)
Reflections = 0 (slider from 0 to 10, step 1)
R_{10} = Mirror(R_9, T_5)
a = true
b = false

Tool: Complex Multiplication (command ComplexMultiplication)
Select Points at O(0, 0), P(0, -1), A and B for A*B
Input: O, P, A, B
Output: j, AB

c = Circle(O, A)
d = Circle(O, B)
D = Intersect(c, xAxis, 2)
b = Segment(O, A)
f = Segment(O, B)
G = Intersect(d, xAxis, 1)
g = Circle(D, P, G)
E = Intersect(g, yAxis, 2)
e = Circle(O, E)
a, h = AngularBisector(f, b)
D' = Mirror(D, a)
i = Ray(O, D')
AB = Intersect(e, i, 1)
j = Segment(O, AB)

Tool: Complex Division (command ComplexDivision)
Select Points O(0, 0), P(0, -1), A and B for A/B
Input: O, P, A, B
Output: l, C

A/B

c = Circle(O, A)
d = Circle(O, B)
D = Intersect(c, xAxis, 2)
e = AngularBisector(A, O, D)
B' = Mirror(B, e)
f = Ray(O, B')
E = Intersect(c, yAxis, 1)
F = Intersect(d, xAxis, 1)
g = Segment(F, E)
G = Midpoint(g)
h = OrthogonalLine(G, g)
i = Segment(P, F)
H = Midpoint(i)
j = OrthogonalLine(H, i)
I = Intersect(h, j)
k = Circle(I, F)
J = Intersect(k, xAxis, 2)
p = Circle(O, J)
C = Intersect(p, f)
l = Segment(O, C)

Tool: Complex Addition (command ComplexAddition)
Select Points O(0, 0), A and B for A + B
Input: O, A, B
Output: C', c

A + B

u = Vector(O, B)
C' = Translate(A, u)
c = Segment(O, C')

Tool: Complex Subtraction (command ComplexSubtraction)
Select Points O(0, 0), A and B for A - B
Input: O, A, B
Output: c, A'

A - B

u = Vector(B, O)
A'_1 = Translate(A, u)
A' = Translate(A, u)
c = Segment(O, A')